// 上面这个代码处理过度动画（默认加上不用管）
document.addEventListener('DOMContentLoaded', () => {
  setTimeout(() => {
    document.body.classList.add('sidenav-pinned')
    document.body.classList.add('ready')
  }, 200)
})

// 每个页面都会导入该js 统一的设置写这里即可
// 封装了一个轻提示的函数
function tip (str) {
  // 在里面要实例化toast对象
  const toastBox = document.querySelector('#myToast')
  // 把传递过来的文字放到提示的文字里
  toastBox.children[0].innerText = str
  const toast = new bootstrap.Toast(toastBox, {
    delay: 1000
  })
  // 显示
  toast.show()
}

// 设置基地址
axios.defaults.baseURL = 'http://ajax-api.itheima.net'
// 添加请求拦截
axios.interceptors.request.use(function (config) {
  // 判断有没有token
  if (localStorage.getItem('token')) {
      config.headers.Authorization = localStorage.getItem('token')
  }
  return config
}, function (error) {
  // 无视他
})
// 添加响应拦截
axios.interceptors.response.use(function (response) {
  // 数据剥离
  return response.data

}, function (error) {
  
  if (error.response.status === 401) {
    // 代表token有问题,就打回登录页
    // 把本地存储里的假token和用户信息也删掉
    localStorage.removeItem('token')
    localStorage.removeItem('username')
    location.href = './login.html'
  }
  return Promise.reject(error)
})


// 找到名字的span，要么得到dom元素（dom对象），要么得到null
const nameSpan = document.querySelector('#navbar-main .font-weight-bold')
// 取出本地存储的用户名
const userName = localStorage.getItem('username')
// 你得判断这个页面里有没有这个span，有我才进行赋值
// 只有0、null、undefined、空字符串、NaN这五种情况，可以隐式转换成
// 其他都是true
// if (nameSpan) {
//   nameSpan.innerText = userName
// }

// 利用了逻辑短路
// 短路：右边代码不执行
// &&的短路是：左边为false就短路
nameSpan && (nameSpan.innerText = userName)


// 找到退出
const logout = document.querySelector('#logout')
if(logout) {

  logout.addEventListener('click', function () {
    // 删除本地存储
    localStorage.removeItem('token')
    localStorage.removeItem('username')
    // 打回登录页
    location.href = 'login.html'
  })
}